1. Field of the Invention
The invention relates to a method for selecting and transmitting selected screen control data for screen displays of a terminal from a server to a client computer.
Such a method is relevant for so-called client-server applications in computer networks. The server application is generating screen control data for screen displays to be visualized on the client terminal. In this connection xe2x80x9cterminalxe2x80x9d means a terminal per se or a so-called terminal emulation. The screen control data are transmitted by a defined data exchange protocol, like for terminals of the type 3270, the emulation products of the type 5250, both of IBM Corp., or for a terminal of the type VT220 of Digital Equipment Corporation, the ICA (Independent Computer Architecture) or RDP (Remote Desktop Protocol) protocols to the client, where the client computer displays the screen content.
In general the volume of data to be transmitted between the server and the client is an important matter because the bandwidth of the transmission channels is limited and the costs for the data transmission is depending on the volume of data.
2. Background Art
In a known concept of screen display control in client-server applications, the screen display is made up of a plurality of screen cells. The screen of a terminal has a certain number of screen cells, which are commonly arranged in columns and rows. The screen cells are stored in a one-dimensional array memory which serves e.g. for refreshing the screen content.
Depending on the type of application the type of screen cell may be a character, according to e.g. a so-called EBCDIC-code, ASCII-code or others, which may be combined with an attribute, like bold, underline, blinking, color, etc. Both these types of characters are appropriate for character-based terminals and terminal emulations like for the 3270, 5250 or VT 220 protocol. For graphic terminals or terminal emulations, in which the client uses rather an ICA or RDP protocol, a screen cell is a pixel, which may be encoded by e.g. 8 bits, 16 bits (high color) or 24 bits (true color).
It is well known to provide for a so-called selective transmission which in general reduces the volume of data to be transferred. The basic principle of this selective transmission is the fact that when changing the screen display the server only transmits these screen cells, which have actually changed. The transmission is normally started with header data, which include the position on screen to start and the length of the data. In other cases like when working with a 3270 protocol a part of the screen is sent after positioning the courser on a certain screen position. From this screen start position consecutive screen cells are sent.
This selective transmission shows the problem that on the one hand the server compares the screen cells of a first screen content array memory with all the screen cells of a second screen array memory to verify which screen cells have changed and thus have to be transmitted from the server to the client computer. This requires a certain computing capacity and computing time at the server. On the other hand the common practice to send the relevantly changed screen cells with header data or the curser positioning data leads to inefficient data transmission in case only a single or few screen cells were changed and are sent to the client.
It is an object of the invention to provide a method for selecting and transmitting selected screen control data for screen displays of a terminal from a server to a client computer which method is more efficient compared to prior art selective transmission. Significantly, the detecting and selecting of the changed screen cells should be optimized.
This object is achieved by a method for selecting and transmitting selected screen control data which include the steps of
providing for a plurality of screen cells making up the screen display;
storing the contents of the screen cells representing a first given screen display into a first screen content array memory of the server;
storing the contents of the screen cells representing a second given screen display into a second screen content array memory of the server;
comparing the contents of each screen cell of the first screen content array memory to the contents of each according screen cell of the second screen content array memory starting from the first screen cell until screen cells with different contents are detected, which screen cells define an array start position;
comparing the contents of each screen cell of the first screen content array memory to the contents of each according screen cell of the second screen content array memory starting from the last screen cell until screen cells with different contents are detected, which screen cells define an array end position;
dividing the first and second screen array memories into fields of a given number of screen cells between the array start position and the array end position;
comparing the contents of selected fields of the first array memory to according fields of the second array memory cell by cell starting from a low field after the array start position;
detecting a first end field in which all cells in both the compared fields are equal;
comparing the contents of each screen cell of first screen content array memory to the contents of each according screen cell of the second screen content array memory starting from one cell below the end field and going back in the direction of the array start position until screen cells with non-matching contents are detected, which cells define a transmission end position;
transmitting screen cells of one of first and second screen content array memory between the array start position and transmission end position to client computer;
comparing the contents of each screen cell of first screen content array memory to the contents of each according screen cell of second screen content array memory starting from above the end field until screen cells with different contents are detected which screen cells define a new array start position; and
repeating the aforesaid steps until a new array start position reaches the array end position.
As an advantage of the invention it is possible to save data volume and transmission time in a server-client computer system, as in a so-called xe2x80x9cselective transmission of screen contentxe2x80x9d; only these screen cells are sent, the data contents of which have changed when a new screen display has been generated by a server application.
The essential features and benefits of the inventions and preferred embodiments will become apparent from the enclosed description of a preferred embodiment taken in conjunction with the drawing.